package com.heima.apis.article;

import com.heima.apis.article.fallback.IArticleClientFallback;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.common.dtos.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.io.IOException;

//@FeignClient用于声明一个 Feign 客户端，指定服务名
//表示这个 Feign 客户端将调用名为leadnews-article的微服务
//服务名在微服务架构中通常对应一个特定的服务实例，Feign会通过服务名来查找服务实例的地址并进行调用
//定义远程接口时，我们一般会使用I作为名称开头
@FeignClient(value = "leadnews-article",fallback = IArticleClientFallback.class)
//对应的服务实例，指当前接口是哪一个服务名对外的接口，本接口是用来保存文章的，所以应该指定为文章端服务模块
//当自媒体端文章审核通过后，通过远程调用该接口让app端执行保存文章的操作，供用户查看
public interface IArticleClient {

	/**
	 * 保存文章
	 * @param dto
	 * @return
	 */
	@PostMapping("/api/v1/article/save")//指定请求方式和请求路径
	public ResponseResult saveArticle(@RequestBody ArticleDto dto) ;
}
